import 'package:hotpot/generated/json/base/json_field.dart';
import 'package:hotpot/generated/json/res_partner.g.dart';
import 'dart:convert';

@JsonSerializable()
class ResPartner {

	int? id;
	// @JSONField(name: "website_id")
	// bool? websiteId;
	// @JSONField(name: "website_published")
	// bool? websitePublished;
	// @JSONField(name: "is_published")
	// bool? isPublished;
	// @JSONField(name: "can_publish")
	// bool? canPublish;
	// @JSONField(name: "website_url")
	// String? websiteUrl;
	// @JSONField(name: "message_is_follower")
	// bool? messageIsFollower;
	// @JSONField(name: "message_follower_ids")
	// List<dynamic>? messageFollowerIds;
	// @JSONField(name: "message_partner_ids")
	// List<dynamic>? messagePartnerIds;
	// @JSONField(name: "message_ids")
	// List<dynamic>? messageIds;
	// @JSONField(name: "has_message")
	// bool? hasMessage;
	// @JSONField(name: "message_needaction")
	// bool? messageNeedaction;
	// @JSONField(name: "message_needaction_counter")
	// int? messageNeedactionCounter;
	// @JSONField(name: "message_has_error")
	// bool? messageHasError;
	// @JSONField(name: "message_has_error_counter")
	// int? messageHasErrorCounter;
	// @JSONField(name: "message_attachment_count")
	// int? messageAttachmentCount;
	// @JSONField(name: "message_main_attachment_id")
	// bool? messageMainAttachmentId;
	// @JSONField(name: "website_message_ids")
	// List<dynamic>? websiteMessageIds;
	// @JSONField(name: "message_has_sms_error")
	// bool? messageHasSmsError;
	// @JSONField(name: "email_normalized")
	// String? emailNormalized;
	// @JSONField(name: "is_blacklisted")
	// bool? isBlacklisted;
	// @JSONField(name: "message_bounce")
	// int? messageBounce;
	// @JSONField(name: "activity_ids")
	// List<dynamic>? activityIds;
	// @JSONField(name: "activity_state")
	// bool? activityState;
	// @JSONField(name: "activity_user_id")
	// bool? activityUserId;
	// @JSONField(name: "activity_type_id")
	// bool? activityTypeId;
	// @JSONField(name: "activity_type_icon")
	// bool? activityTypeIcon;
	// @JSONField(name: "activity_date_deadline")
	// bool? activityDateDeadline;
	// @JSONField(name: "my_activity_date_deadline")
	// bool? myActivityDateDeadline;
	// @JSONField(name: "activity_summary")
	// bool? activitySummary;
	// @JSONField(name: "activity_exception_decoration")
	// bool? activityExceptionDecoration;
	// @JSONField(name: "activity_exception_icon")
	// bool? activityExceptionIcon;
	// @JSONField(name: "image_1920")
	// String? image1920;
	// @JSONField(name: "image_1024")
	// String? image1024;
	// @JSONField(name: "image_512")
	// String? image512;
	// @JSONField(name: "image_256")
	// String? image256;
	@JSONField(name: "image_128")
	String? image128;
	// @JSONField(name: "avatar_1920")
	// String? avatar1920;
	// @JSONField(name: "avatar_1024")
	// String? avatar1024;
	// @JSONField(name: "avatar_512")
	// String? avatar512;
	// @JSONField(name: "avatar_256")
	// String? avatar256;
	// @JSONField(name: "avatar_128")
	// String? avatar128;
	String? name;
	// @JSONField(name: "display_name")
	// String? displayName;
	// @JSONField(name: "translated_display_name")
	// String? translatedDisplayName;
	// bool? date;
	// bool? title;
	@JSONField(name: "parent_id")
	List<String>? parentId;
	@JSONField(name: "parent_name")
	String? parentName;
	@JSONField(name: "child_ids")
	List<int>? childIds;
	// bool? ref;
	// String? lang;
	// @JSONField(name: "active_lang_count")
	// int? activeLangCount;
	// String? tz;
	// @JSONField(name: "tz_offset")
	// String? tzOffset;
	@JSONField(name: "user_id")
	List<String>? userId;
	String? vat;
	// @JSONField(name: "same_vat_partner_id")
	// bool? sameVatPartnerId;
	// @JSONField(name: "same_company_registry_partner_id")
	// bool? sameCompanyRegistryPartnerId;
	// @JSONField(name: "company_registry")
	// bool? companyRegistry;
	// @JSONField(name: "bank_ids")
	// List<dynamic>? bankIds;
	// bool? website;
	// bool? comment;
	// @JSONField(name: "category_id")
	// List<dynamic>? categoryId;
	// bool? active;
	// bool? employee;
	// @JSONField(name: "function")
	// bool? xFunction;
	// String? type;
	String? street;
	// bool? street2;
	String? zip;
	String? city;
	@JSONField(name: "state_id")
	List<String>? stateId;
	@JSONField(name: "country_id")
	List<String>? countryId;
	// @JSONField(name: "country_code")
	// bool? countryCode;
	// @JSONField(name: "partner_latitude")
	// double? partnerLatitude;
	// @JSONField(name: "partner_longitude")
	// double? partnerLongitude;
	String? email;
	// @JSONField(name: "email_formatted")
	// String? emailFormatted;
	String? phone;
	String? mobile;
	// @JSONField(name: "is_company")
	// bool? isCompany;
	// @JSONField(name: "is_public")
	// bool? isPublic;
	// @JSONField(name: "industry_id")
	// bool? industryId;
	// @JSONField(name: "company_type")
	// String? companyType;
	@JSONField(name: "company_id")
	List<String>? companyId;
	// int? color;
	// @JSONField(name: "user_ids")
	// List<int>? userIds;
	// @JSONField(name: "partner_share")
	// bool? partnerShare;
	// @JSONField(name: "contact_address")
	// String? contactAddress;
	// @JSONField(name: "commercial_partner_id")
	// List<int>? commercialPartnerId;
	// @JSONField(name: "commercial_company_name")
	// bool? commercialCompanyName;
	@JSONField(name: "company_name")
	String? companyName;
	String? barcode;
	// List<int>? self;
	// @JSONField(name: "__last_update")
	// String? sLastUpdate;
	// @JSONField(name: "create_uid")
	// List<int>? createUid;
	// @JSONField(name: "create_date")
	// String? createDate;
	// @JSONField(name: "write_uid")
	// List<int>? writeUid;
	// @JSONField(name: "write_date")
	// String? writeDate;
	// @JSONField(name: "im_status")
	// String? imStatus;
	// bool? fax;
	// @JSONField(name: "channel_ids")
	// List<int>? channelIds;
	// @JSONField(name: "signup_token")
	// bool? signupToken;
	// @JSONField(name: "signup_type")
	// bool? signupType;
	// @JSONField(name: "signup_expiration")
	// bool? signupExpiration;
	// @JSONField(name: "signup_valid")
	// bool? signupValid;
	// @JSONField(name: "signup_url")
	// String? signupUrl;
	// @JSONField(name: "employee_ids")
	// List<dynamic>? employeeIds;
	// @JSONField(name: "employees_count")
	// int? employeesCount;
	// @JSONField(name: "property_product_pricelist")
	// List<int>? propertyProductPricelist;
	// @JSONField(name: "team_id")
	// bool? teamId;
	// @JSONField(name: "partner_gid")
	// int? partnerGid;
	// @JSONField(name: "additional_info")
	// bool? additionalInfo;
	// @JSONField(name: "phone_sanitized")
	// bool? phoneSanitized;
	// @JSONField(name: "phone_sanitized_blacklisted")
	// bool? phoneSanitizedBlacklisted;
	// @JSONField(name: "phone_blacklisted")
	// bool? phoneBlacklisted;
	// @JSONField(name: "mobile_blacklisted")
	// bool? mobileBlacklisted;
	// @JSONField(name: "phone_mobile_search")
	// bool? phoneMobileSearch;
	// @JSONField(name: "payment_token_ids")
	// List<dynamic>? paymentTokenIds;
	// @JSONField(name: "payment_token_count")
	// int? paymentTokenCount;
	// double? credit;
	// @JSONField(name: "credit_limit")
	// double? creditLimit;
	// @JSONField(name: "use_partner_credit_limit")
	// bool? usePartnerCreditLimit;
	// @JSONField(name: "show_credit_limit")
	// bool? showCreditLimit;
	// double? debit;
	// @JSONField(name: "debit_limit")
	// double? debitLimit;
	// @JSONField(name: "total_invoiced")
	// double? totalInvoiced;
	// @JSONField(name: "currency_id")
	// List<int>? currencyId;
	// @JSONField(name: "journal_item_count")
	// int? journalItemCount;
	// @JSONField(name: "property_account_payable_id")
	// List<int>? propertyAccountPayableId;
	// @JSONField(name: "property_account_receivable_id")
	// List<int>? propertyAccountReceivableId;
	// @JSONField(name: "property_account_position_id")
	// bool? propertyAccountPositionId;
	// @JSONField(name: "property_payment_term_id")
	// bool? propertyPaymentTermId;
	// @JSONField(name: "property_supplier_payment_term_id")
	// bool? propertySupplierPaymentTermId;
	// @JSONField(name: "ref_company_ids")
	// List<dynamic>? refCompanyIds;
	// @JSONField(name: "has_unreconciled_entries")
	// bool? hasUnreconciledEntries;
	// @JSONField(name: "last_time_entries_checked")
	// bool? lastTimeEntriesChecked;
	// @JSONField(name: "invoice_ids")
	// List<dynamic>? invoiceIds;
	// @JSONField(name: "contract_ids")
	// List<dynamic>? contractIds;
	// @JSONField(name: "bank_account_count")
	// int? bankAccountCount;
	// String? trust;
	// @JSONField(name: "invoice_warn")
	// String? invoiceWarn;
	// @JSONField(name: "invoice_warn_msg")
	// bool? invoiceWarnMsg;
	// @JSONField(name: "supplier_rank")
	// int? supplierRank;
	// @JSONField(name: "customer_rank")
	// int? customerRank;
	// @JSONField(name: "duplicated_bank_account_partners_count")
	// int? duplicatedBankAccountPartnersCount;
	// @JSONField(name: "property_stock_customer")
	// List<int>? propertyStockCustomer;
	// @JSONField(name: "property_stock_supplier")
	// List<int>? propertyStockSupplier;
	// @JSONField(name: "picking_warn")
	// String? pickingWarn;
	// @JSONField(name: "picking_warn_msg")
	// bool? pickingWarnMsg;
	// @JSONField(name: "visitor_ids")
	// List<int>? visitorIds;
	// @JSONField(name: "vies_failed_message")
	// bool? viesFailedMessage;
	// @JSONField(name: "pos_order_count")
	// int? posOrderCount;
	// @JSONField(name: "pos_order_ids")
	// List<int>? posOrderIds;
	// @JSONField(name: "sale_order_count")
	// int? saleOrderCount;
	// @JSONField(name: "sale_order_ids")
	// List<int>? saleOrderIds;
	// @JSONField(name: "sale_warn")
	// String? saleWarn;
	// @JSONField(name: "sale_warn_msg")
	// bool? saleWarnMsg;
	// @JSONField(name: "last_website_so_id")
	// bool? lastWebsiteSoId;
	// @JSONField(name: "pos_tax_id")
	// bool? posTaxId;
	// @JSONField(name: "pos_optional_tax_ids")
	// List<dynamic>? posOptionalTaxIds;
	// @JSONField(name: "pos_discount")
	// double? posDiscount;
	// @JSONField(name: "property_purchase_currency_id")
	// bool? propertyPurchaseCurrencyId;
	// @JSONField(name: "purchase_order_count")
	// int? purchaseOrderCount;
	// @JSONField(name: "supplier_invoice_count")
	// int? supplierInvoiceCount;
	// @JSONField(name: "purchase_warn")
	// String? purchaseWarn;
	// @JSONField(name: "purchase_warn_msg")
	// bool? purchaseWarnMsg;
	// @JSONField(name: "receipt_reminder_email")
	// bool? receiptReminderEmail;
	// @JSONField(name: "reminder_date_before_receipt")
	// int? reminderDateBeforeReceipt;
	// @JSONField(name: "purchase_line_ids")
	// List<int>? purchaseLineIds;
	// @JSONField(name: "on_time_rate")
	// double? onTimeRate;
	@JSONField(name: "partner_id")
	List<String>? partnerId;
  
  ResPartner();

  factory ResPartner.fromJson(Map<String, dynamic> json) => $ResPartnerFromJson(json);

  Map<String, dynamic> toJson() => $ResPartnerToJson(this);

  @override
  String toString() {
    return jsonEncode(this);
  }
}